package com.zyj.check.mapper;

import com.zyj.check.domain.AssetsCheck;
import com.zyj.check.domain.AssetsCheckDetail;

import java.util.List;
import java.util.Map;

/**
 * 资产盘点Mapper接口
 * 
 * @author zhuyujie
 * @date 2022-05-17
 */
public interface AssetsCheckMapper 
{
    /**
     * 查询资产盘点
     * 
     * @param checkId 资产盘点主键
     * @return 资产盘点
     */
    public AssetsCheck selectAssetsCheckByCheckId(Long checkId);

    /**
     * 查询资产盘点列表
     * 
     * @param assetsCheck 资产盘点
     * @return 资产盘点集合
     */
    public List<AssetsCheck> selectAssetsCheckList(AssetsCheck assetsCheck);

    /**
     * 新增资产盘点
     * 
     * @param assetsCheck 资产盘点
     * @return 结果
     */
    public int insertAssetsCheck(AssetsCheck assetsCheck);

    /**
     * 修改资产盘点
     * 
     * @param assetsCheck 资产盘点
     * @return 结果
     */
    public int updateAssetsCheck(AssetsCheck assetsCheck);

    /**
     * 删除资产盘点
     * 
     * @param checkId 资产盘点主键
     * @return 结果
     */
    public int deleteAssetsCheckByCheckId(Long checkId);

    /**
     * 批量删除资产盘点
     * 
     * @param checkIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAssetsCheckByCheckIds(String[] checkIds);

    /**
     * 批量删除资产盘点详情
     * 
     * @param checkIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAssetsCheckDetailByCheckIds(String[] checkIds);
    
    /**
     * 批量新增资产盘点详情
     *
     * @return 结果
     */
    public int batchAssetsCheckDetail(AssetsCheck assetsCheck);
    

    /**
     * 通过资产盘点主键删除资产盘点详情信息
     * 
     * @param checkId 资产盘点ID
     * @return 结果
     */
    public int deleteAssetsCheckDetailByCheckId(Long checkId);

    public int getBatchDetailCount(AssetsCheck assetsCheck);

    public int selectAssetsCheckDetailCount(Map p);

    public List<AssetsCheckDetail> selectAssetsCheckDetailList(AssetsCheckDetail assetsCheck);

    public int updateAssetsCheckDetail(AssetsCheckDetail assetsCheckDetail);

    public int updateAssetsCheckDetails(AssetsCheckDetail assetsCheckDetail);

    public List<AssetsCheck> selectAssetsCheckDetailsByType(Long checkId);

    public int selectAssetsCheckDetailsByTypeCount(AssetsCheck assetsCheck);
}
